Main Page | Alphabetical List | Data Structures | File List | Data Fields | Globals

egl.h

Go to the documentation of this file.
00001 /* -*- mode: c; tab-width: 8; -*- */
00002 /* vi: set sw=4 ts=8: */
00003 /* Reference version of egl.h for EGL 1.3.
00004  * Last modified 2006/11/12
00005  */
00006 
00007 #ifndef __egl_h_
00008 #define __egl_h_
00009 
00010 /* All platform-dependent types and macro boilerplate (such as EGLAPI
00011  * and EGLAPIENTRY) should go in eglplatform.h.
00012  */
00013 #include <EGL/eglplatform.h>
00014 
00015 #ifdef __cplusplus
00016 extern "C" {
00017 #endif
00018 
00019 /* EGL Types */
00020 typedef int EGLint;
00021 typedef unsigned int EGLBoolean;
00022 typedef unsigned int EGLenum;
00023 typedef void *EGLConfig;
00024 typedef void *EGLContext;
00025 typedef void *EGLDisplay;
00026 typedef void *EGLSurface;
00027 typedef void *EGLClientBuffer;
00028 
00029 /* EGL Versioning */
00030 #define EGL_VERSION_1_0       1
00031 #define EGL_VERSION_1_1       1
00032 #define EGL_VERSION_1_2       1
00033 #define EGL_VERSION_1_3       1
00034 
00035 /* EGL Enumerants. Bitmasks and other exceptional cases aside, most
00036  * enums are assigned unique values starting at 0x3000.
00037  */
00038 
00039 /* EGL aliases */
00040 #define EGL_FALSE       0
00041 #define EGL_TRUE        1
00042 
00043 /* Out-of-band handle values */
00044 #define EGL_DEFAULT_DISPLAY      ((NativeDisplayType)0)
00045 #define EGL_NO_CONTEXT        ((EGLContext)0)
00046 #define EGL_NO_DISPLAY        ((EGLDisplay)0)
00047 #define EGL_NO_SURFACE        ((EGLSurface)0)
00048 
00049 /* Out-of-band attribute value */
00050 #define EGL_DONT_CARE         ((EGLint)-1)
00051 
00052 /* Errors / GetError return values */
00053 #define EGL_SUCCESS        0x3000
00054 #define EGL_NOT_INITIALIZED      0x3001
00055 #define EGL_BAD_ACCESS        0x3002
00056 #define EGL_BAD_ALLOC         0x3003
00057 #define EGL_BAD_ATTRIBUTE     0x3004
00058 #define EGL_BAD_CONFIG        0x3005
00059 #define EGL_BAD_CONTEXT       0x3006
00060 #define EGL_BAD_CURRENT_SURFACE     0x3007
00061 #define EGL_BAD_DISPLAY       0x3008
00062 #define EGL_BAD_MATCH         0x3009
00063 #define EGL_BAD_NATIVE_PIXMAP    0x300A
00064 #define EGL_BAD_NATIVE_WINDOW    0x300B
00065 #define EGL_BAD_PARAMETER     0x300C
00066 #define EGL_BAD_SURFACE       0x300D
00067 #define EGL_CONTEXT_LOST      0x300E   /* EGL 1.1 - IMG_power_management */
00068 
00069 /* Reserved 0x300F-0x301F for additional errors */
00070 
00071 /* Config attributes */
00072 #define EGL_BUFFER_SIZE       0x3020
00073 #define EGL_ALPHA_SIZE        0x3021
00074 #define EGL_BLUE_SIZE         0x3022
00075 #define EGL_GREEN_SIZE        0x3023
00076 #define EGL_RED_SIZE       0x3024
00077 #define EGL_DEPTH_SIZE        0x3025
00078 #define EGL_STENCIL_SIZE      0x3026
00079 #define EGL_CONFIG_CAVEAT     0x3027
00080 #define EGL_CONFIG_ID         0x3028
00081 #define EGL_LEVEL       0x3029
00082 #define EGL_MAX_PBUFFER_HEIGHT      0x302A
00083 #define EGL_MAX_PBUFFER_PIXELS      0x302B
00084 #define EGL_MAX_PBUFFER_WIDTH    0x302C
00085 #define EGL_NATIVE_RENDERABLE    0x302D
00086 #define EGL_NATIVE_VISUAL_ID     0x302E
00087 #define EGL_NATIVE_VISUAL_TYPE      0x302F
00088 #define EGL_PRESERVED_RESOURCES     0x3030
00089 #define EGL_SAMPLES        0x3031
00090 #define EGL_SAMPLE_BUFFERS    0x3032
00091 #define EGL_SURFACE_TYPE      0x3033
00092 #define EGL_TRANSPARENT_TYPE     0x3034
00093 #define EGL_TRANSPARENT_BLUE_VALUE  0x3035
00094 #define EGL_TRANSPARENT_GREEN_VALUE 0x3036
00095 #define EGL_TRANSPARENT_RED_VALUE   0x3037
00096 #define EGL_NONE        0x3038   /* Attrib list terminator */
00097 #define EGL_BIND_TO_TEXTURE_RGB     0x3039
00098 #define EGL_BIND_TO_TEXTURE_RGBA 0x303A
00099 #define EGL_MIN_SWAP_INTERVAL    0x303B
00100 #define EGL_MAX_SWAP_INTERVAL    0x303C
00101 #define EGL_LUMINANCE_SIZE    0x303D
00102 #define EGL_ALPHA_MASK_SIZE      0x303E
00103 #define EGL_COLOR_BUFFER_TYPE    0x303F
00104 #define EGL_RENDERABLE_TYPE      0x3040
00105 #define EGL_MATCH_NATIVE_PIXMAP     0x3041   /* Pseudo-attribute (not queryable) */
00106 #define EGL_CONFORMANT        0x3042
00107 
00108 /* Reserved 0x3041-0x304F for additional config attributes */
00109 
00110 /* Config attribute values */
00111 #define EGL_SLOW_CONFIG       0x3050   /* EGL_CONFIG_CAVEAT value */
00112 #define EGL_NON_CONFORMANT_CONFIG   0x3051   /* EGL_CONFIG_CAVEAT value */
00113 #define EGL_TRANSPARENT_RGB      0x3052   /* EGL_TRANSPARENT_TYPE value */
00114 #define EGL_RGB_BUFFER        0x308E   /* EGL_COLOR_BUFFER_TYPE value */
00115 #define EGL_LUMINANCE_BUFFER     0x308F   /* EGL_COLOR_BUFFER_TYPE value */
00116 
00117 /* More config attribute values, for EGL_TEXTURE_FORMAT */
00118 #define EGL_NO_TEXTURE        0x305C
00119 #define EGL_TEXTURE_RGB       0x305D
00120 #define EGL_TEXTURE_RGBA      0x305E
00121 #define EGL_TEXTURE_2D        0x305F
00122 
00123 /* Config attribute mask bits */
00124 #define EGL_PBUFFER_BIT       0x0001   /* EGL_SURFACE_TYPE mask bits */
00125 #define EGL_PIXMAP_BIT        0x0002   /* EGL_SURFACE_TYPE mask bits */
00126 #define EGL_WINDOW_BIT        0x0004   /* EGL_SURFACE_TYPE mask bits */
00127 #define EGL_VG_COLORSPACE_LINEAR_BIT   0x0020   /* EGL_SURFACE_TYPE mask bits */
00128 #define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040   /* EGL_SURFACE_TYPE mask bits */
00129 
00130 #define EGL_OPENGL_ES_BIT     0x0001   /* EGL_RENDERABLE_TYPE mask bits */
00131 #define EGL_OPENVG_BIT        0x0002   /* EGL_RENDERABLE_TYPE mask bits */
00132 #define EGL_OPENGL_ES2_BIT    0x0004   /* EGL_RENDERABLE_TYPE mask bits */
00133 
00134 /* QueryString targets */
00135 #define EGL_VENDOR         0x3053
00136 #define EGL_VERSION        0x3054
00137 #define EGL_EXTENSIONS        0x3055
00138 #define EGL_CLIENT_APIS       0x308D
00139 
00140 /* QuerySurface / CreatePbufferSurface targets */
00141 #define EGL_HEIGHT         0x3056
00142 #define EGL_WIDTH       0x3057
00143 #define EGL_LARGEST_PBUFFER      0x3058
00144 #define EGL_TEXTURE_FORMAT    0x3080
00145 #define EGL_TEXTURE_TARGET    0x3081
00146 #define EGL_MIPMAP_TEXTURE    0x3082
00147 #define EGL_MIPMAP_LEVEL      0x3083
00148 #define EGL_RENDER_BUFFER     0x3086
00149 #define EGL_VG_COLORSPACE     0x3087
00150 #define EGL_VG_ALPHA_FORMAT      0x3088
00151 #define EGL_HORIZONTAL_RESOLUTION   0x3090
00152 #define EGL_VERTICAL_RESOLUTION     0x3091
00153 #define EGL_PIXEL_ASPECT_RATIO      0x3092
00154 #define EGL_SWAP_BEHAVIOR     0x3093
00155 
00156 /* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */
00157 #define EGL_BACK_BUFFER       0x3084
00158 #define EGL_SINGLE_BUFFER     0x3085
00159 
00160 /* OpenVG color spaces */
00161 #define EGL_VG_COLORSPACE_sRGB      0x3089   /* EGL_VG_COLORSPACE value */
00162 #define EGL_VG_COLORSPACE_LINEAR 0x308A   /* EGL_VG_COLORSPACE value */
00163 
00164 /* OpenVG alpha formats */
00165 #define EGL_VG_ALPHA_FORMAT_NONPRE  0x308B   /* EGL_ALPHA_FORMAT value */
00166 #define EGL_VG_ALPHA_FORMAT_PRE     0x308C   /* EGL_ALPHA_FORMAT value */
00167 
00168 /* Constant scale factor by which fractional display resolutions &
00169  * aspect ratio are scaled when queried as integer values.
00170  */
00171 #define EGL_DISPLAY_SCALING      10000
00172 
00173 /* Unknown display resolution/aspect ratio */
00174 #define EGL_UNKNOWN        ((EGLint)-1)
00175 
00176 /* Back buffer swap behaviors */
00177 #define EGL_BUFFER_PRESERVED     0x3094   /* EGL_SWAP_BEHAVIOR value */
00178 #define EGL_BUFFER_DESTROYED     0x3095   /* EGL_SWAP_BEHAVIOR value */
00179 
00180 /* CreatePbufferFromClientBuffer buffer types */
00181 #define EGL_OPENVG_IMAGE      0x3096
00182 
00183 /* QueryContext targets */
00184 #define EGL_CONTEXT_CLIENT_TYPE     0x3097
00185 
00186 /* CreateContext attributes */
00187 #define EGL_CONTEXT_CLIENT_VERSION  0x3098
00188 
00189 /* BindAPI/QueryAPI targets */
00190 #define EGL_OPENGL_ES_API     0x30A0
00191 #define EGL_OPENVG_API        0x30A1
00192 
00193 /* GetCurrentSurface targets */
00194 #define EGL_DRAW        0x3059
00195 #define EGL_READ        0x305A
00196 
00197 /* WaitNative engines */
00198 #define EGL_CORE_NATIVE_ENGINE      0x305B
00199 
00200 /* EGL 1.2 tokens renamed for consistency in EGL 1.3 */
00201 #define EGL_COLORSPACE        EGL_VG_COLORSPACE
00202 #define EGL_ALPHA_FORMAT      EGL_VG_ALPHA_FORMAT
00203 #define EGL_COLORSPACE_sRGB      EGL_VG_COLORSPACE_sRGB
00204 #define EGL_COLORSPACE_LINEAR    EGL_VG_COLORSPACE_LINEAR
00205 #define EGL_ALPHA_FORMAT_NONPRE     EGL_VG_ALPHA_FORMAT_NONPRE
00206 #define EGL_ALPHA_FORMAT_PRE     EGL_VG_ALPHA_FORMAT_PRE
00207 
00208 /* EGL extensions must request enum blocks from the Khronos
00209  * API Registrar, who maintains the enumerant registry. Submit
00210  * a bug in Khronos Bugzilla against task "Registry".
00211  */
00212 
00213 
00214 
00215 /* EGL Functions */
00216 
00217 EGLAPI EGLint EGLAPIENTRY eglGetError(void);
00218 
00219 EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id);
00220 EGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
00221 EGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy);
00222 
00223 EGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name);
00224 
00225 EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs,
00226           EGLint config_size, EGLint *num_config);
00227 EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list,
00228             EGLConfig *configs, EGLint config_size,
00229             EGLint *num_config);
00230 EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config,
00231                EGLint attribute, EGLint *value);
00232 
00233 EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
00234               EGLNativeWindowType win,
00235               const EGLint *attrib_list);
00236 EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config,
00237                const EGLint *attrib_list);
00238 EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
00239               EGLNativePixmapType pixmap,
00240               const EGLint *attrib_list);
00241 EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
00242 EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface,
00243             EGLint attribute, EGLint *value);
00244 
00245 EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api);
00246 EGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void);
00247 
00248 EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void);
00249 
00250 EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void);
00251 
00252 EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(
00253          EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer,
00254          EGLConfig config, const EGLint *attrib_list);
00255 
00256 EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface,
00257              EGLint attribute, EGLint value);
00258 EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
00259 EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
00260 
00261 
00262 EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval);
00263 
00264 
00265 EGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config,
00266              EGLContext share_context,
00267              const EGLint *attrib_list);
00268 EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
00269 EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw,
00270            EGLSurface read, EGLContext ctx);
00271 
00272 EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void);
00273 EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw);
00274 EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void);
00275 EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx,
00276             EGLint attribute, EGLint *value);
00277 
00278 EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void);
00279 EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine);
00280 EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
00281 EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
00282            EGLNativePixmapType target);
00283 
00284 EGLAPI void (* EGLAPIENTRY eglGetProcAddress(const char *procname))(void);
00285 
00286 #ifdef __cplusplus
00287 }
00288 #endif
00289 
00290 #endif /* __egl_h_ */

Generated on Thu Jan 31 11:29:22 2008 for ES Framework by doxygen 1.3.6